var str = "123";
var obj;
obj = {
    num: 123
};
var bool = true;
var num = 123;
// num='aaa' 报错 不能将类型“string”分配给类型“number”
// 数组
var arr1 = [1, 2, 3];
var arr2 = ['a', 'b', 'c'];
var null1 = null;
// 不能将类型“[number, string, number]”分配给类型“[number, string]”。
// 源具有 3 个元素，但目标仅允许 2 个。
// let tuple:[number,string]=[1,'a',2]
var tuple = [1, 'a'];
tuple.push(2);
// console.log(tuple[2])   报错
// ts要求给函数参数提供类型值，返回值一般不需要提供类型值，ts会自动使用推导出返回值类型。
var add = function (x, y) {
    return x + y;
};
// let obj1:object ={
//     a:1,
//     b:2
// }
// obj1.a=3   //这样写不允许修改对象的变量值 obj.a = 3 
var obj1 = {
    a: 1,
    b: 2
};
obj1.a = 3;
// let s1:symbol = Symbol();
// let s2:symbol = Symbol()  
// console.log(s1==s2)
var Role;
(function (Role) {
    Role[Role["Reporter"] = 0] = "Reporter";
    Role[Role["Developer"] = 1] = "Developer";
    Role[Role["Main"] = 2] = "Main";
    Role[Role["Owner"] = 3] = "Owner";
    Role[Role["Guest"] = 4] = "Guest";
})(Role || (Role = {}));
console.log(Role.Reporter);
